package com.community.comsys.mapper;

import java.util.List;
import com.community.comsys.domain.House;
import com.community.comsys.domain.vo.HouseVoCommunity;
import com.community.comsys.domain.vo.HouseVoStatus;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Service;

/**
 * 房屋管理Mapper接口
 * 
 * @author 潇东
 * @date 2025-10-27
 */
@Service
public interface HouseMapper 
{
    /**
     * 查询房屋管理
     * 
     * @param houseId 房屋管理主键
     * @return 房屋管理
     */
    public House selectHouseByHouseId(Long houseId);

    /**
     * 查询房屋管理列表
     * 
     * @param house 房屋管理
     * @return 房屋管理集合
     */
    public List<House> selectHouseList(House house);

    /**
     * 新增房屋管理
     * 
     * @param house 房屋管理
     * @return 结果
     */
    public int insertHouse(House house);

    /**
     * 修改房屋管理
     * 
     * @param house 房屋管理
     * @return 结果
     */
    public int updateHouse(House house);

    /**
     * 删除房屋管理
     * 
     * @param houseId 房屋管理主键
     * @return 结果
     */
    public int deleteHouseByHouseId(Long houseId);

    /**
     * 批量删除房屋管理
     * 
     * @param houseIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHouseByHouseIds(Long[] houseIds);

    @Select("select count(*) from house")
    Long count();

    @Select("SELECT h.community_id communityId,c.name ,count(*) count FROM `house` h,community c" +
            "        where c.community_id=h.community_id  GROUP BY h.community_id")
    List<HouseVoCommunity> groupByCommunity();

    @Select("select house_status status,count(*) count from house GROUP BY house_status")
    List<HouseVoStatus> groupByStatus();

}
